package com.bsoft.gol.hcs.specialist.service;

import com.alibaba.fastjson.JSONArray;
import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import com.bsoft.gol.hcs.specialist.bean.request.FusHealthEducationRequest;
import com.bsoft.gol.hcs.specialist.bean.request.HealthEducationGetListReq;
import com.bsoft.gol.hcs.specialist.bean.response.DiseasesAndFusListResp;
import com.bsoft.gol.hcs.specialist.bean.response.FusHealthEducationByDortorResponse;
import com.bsoft.gol.hcs.specialist.bean.response.FusHealthEducationResp;
import com.bsoft.gol.hcs.specialist.bean.response.HealthEducationList;

import java.util.List;

/**
 * @author xhf
 * @date 2018/11/8 17:51
 * @Description 健康宣教知识库接口
 */
public interface IHealthEducationService {

    /**
     * 初始化健康宣教列表
     *
     * @param getListReq
     * @return: 健康宣教子列表
     */
    @RpcService
    JSONArray getList(HealthEducationGetListReq getListReq) throws ControllerException;

    /**
     * 根据ID列表查询健康宣教详情
     *
     * @param getListReq
     * @return com.alibaba.fastjson.JSONArray
     * @throws
     * @author tongtp
     * @date 2023/1/10 17:21
     */
    @RpcService
    JSONArray queryDetailByIdList(HealthEducationGetListReq getListReq) throws ControllerException;


    /**
     * 根据用户权限获取宣教列表
     *
     * @return
     * @throws ControllerException
     */
    @RpcService
    JSONArray getFusHealthList(HealthEducationGetListReq req) throws ControllerException;

    /**
     * 健康宣教详情
     *
     * @param fusHealthEducationId 宣教id
     * @return: 健康宣教详情
     */
    @RpcService
    JSONArray getFusHealthEducationInfo(Long fusHealthEducationId) throws ControllerException;

    /**
     * 保存/修改健康宣教内容
     *
     * @param healthEducationRequest 健康宣教信息入参
     */
    @RpcService
    void save(FusHealthEducationRequest healthEducationRequest) throws ControllerException;

    /**
     * 删除健康宣教目录/材料
     *
     * @param fusHealthEducationId 宣教入参
     */
    @RpcService
    void delete(Long fusHealthEducationId) throws ControllerException;

    /**
     * 查询健康宣教材料
     *
     * @param fusHealthEducationId 宣教材料id
     */
    @RpcService
    FusHealthEducationResp getFusHealthEducationContent(Long fusHealthEducationId) throws ControllerException;

    /**
     * 根据医生ID查询健康宣教列表
     *
     * @param diseasesAndFusListResp
     */
    @RpcService
    List<FusHealthEducationByDortorResponse> findFusHealthEducationByDoctorId(DiseasesAndFusListResp diseasesAndFusListResp) throws ControllerException;

    /**
     * 根据病种id查病健康宣教列表
     *
     * @param diseaseTypeId
     */
    @RpcService
    List<HealthEducationList> findDiseaseTypeListByDiseId(Long diseaseTypeId) throws ControllerException;

}
